/**
    @author: administrator
    @date:   2020/12/8
    @note:
**/
package impl

import (
	"encoding/json"
	uuid "github.com/satori/go.uuid"
)

//接收消息体
type MessageInfo struct {
	MType int `json:"type"`//消息类型 1 系统消息  2 群聊消息  3 私聊消息  4 系统操作
	Message string `json:"msg"` //消息内容
	From uuid.UUID `json:"from"`	// 发送人
	To uuid.UUID `json:"tofrom"`	//接收的对象 uuid
	UserInfo UserInfo `json:"userInfo"`
}

//刷新用户列表
type UserListMessage struct {
	MType int `json:"type"`//消息类型 1 系统消息  2 群聊消息  3 私聊消息  4 系统操作
	Message string `json:"msg"` //消息内容
	UserInfo UserInfo `json:"userInfo"`
	UserList [] UserInfo `json:"user_list"`//当前的用户列表
}


//接收消息解析
func Parse(data []byte) (MessageInfo,error) {
	var Message MessageInfo
	if err:=json.Unmarshal(data,&Message);err!=nil{
		return Message,err
	}
	return Message,nil
}

//输出json字符串
func Result(data MessageInfo,info UserInfo) ([]byte){
	//Message:= data
	Message:=&MessageInfo{
		MType:    data.MType,
		Message:  data.Message,
		From:     data.From,
		To:       data.To,
		UserInfo: info,
	}
	b,err:=json.Marshal(Message)
	if err!=nil{
		return nil
	}
	return b
}

//输出json字符串
func Result2(data MessageInfo,info UserInfo,UserList []UserInfo) ([]byte){

	Message:=&UserListMessage{
		MType:    data.MType,
		Message:  data.Message,
		UserInfo: info,
		UserList:UserList,
	}
	b,err:=json.Marshal(Message)
	if err!=nil{
		return nil
	}
	return b
}
